home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 April: Mac OS SDK / Dev.CD Apr 97 SDK1.toast / Development Kits (Disc 1) / Apple Shared Library Manager / ASLM Examples / Example Tools / Sources / TTokenExample.h < prev   
Encoding:
C/C++ Source or Header  |  1996-11-19  |  1.5 KB  |  60 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        TTokenExample.h
  3.  
  4.     Contains:    The TToken class can carry (maintain information about) an object and
  5.                 can give the object an ID.  Here the TBufferToken is a token with buffer
  6.                 of x bytes.
  7.  
  8.     Copyright:    © 1993 by Apple Computer, Inc., all rights reserved.
  9.  
  10. */
  11.  
  12. #ifndef __TTOKENEXAMPLE__
  13. #define __TTOKENEXAMPLE__
  14.  
  15. ///————————————————————————————————————————————————————————————————————————————————————
  16. ///    TBufferToken
  17. ///————————————————————————————————————————————————————————————————————————————————————
  18.  
  19. class TBufferToken : public TToken {
  20.     public:
  21.                 TBufferToken();
  22.         virtual ~TBufferToken();
  23.         virtual void BufRead();                // read from the buffer
  24.         virtual void BufWrite(char *);        // write to the buffer
  25.     private:
  26.         short    fBufPos;                    // current buffer position
  27. };
  28.  
  29. ///————————————————————————————————————————————————————————————————————————————————————
  30. ///    TBufferToken IMPLEMENTATION
  31. ///————————————————————————————————————————————————————————————————————————————————————
  32.  
  33.     TBufferToken::TBufferToken()
  34.     {
  35.         fObject = new char[256];    // allocate some space for our buffer
  36.         fBufPos = 0;
  37.     }
  38.     
  39.     TBufferToken::~TBufferToken()
  40.     {
  41.         // the TToken destructor will delete fID for us
  42.         delete fObject;
  43.     }
  44.     
  45.     void TBufferToken::BufRead()
  46.     {
  47.         if( fObject )
  48.             cout << "Buffer = " << (char *)fObject << endl;
  49.     }
  50.  
  51.     void TBufferToken::BufWrite(char *string)
  52.     {
  53.         if( fObject ) {
  54.             size_t     len = strlen(string);
  55.             strcpy( ((char *)fObject)+fBufPos, string );
  56.             fBufPos += len;
  57.         }
  58.     }
  59.  
  60. #endif